package com.wujunshen.dumpling.common.utils;

import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils;

/** @author frankwoo */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class Assert {
  /**
   * 断言 boolean 为 true
   *
   * <p>为 false 则抛出异常
   *
   * @param expression {@link Boolean} boolean 值
   */
  @SneakyThrows
  private static void isTrue(boolean expression) {
    if (!expression) {
      throw new IllegalAccessException("对象不能为null，字符串不能为空");
    }
  }

  /**
   * 断言 object 不为 null
   *
   * <p>为 null 则抛异常
   *
   * @param object {@link String} 对象
   */
  public static void isNotNull(Object object) {
    isTrue(object != null);
  }

  /**
   * 断言 value 不为 empty
   *
   * <p>为 empty 则抛异常
   *
   * @param value {@link String} 字符串
   */
  public static void isNotEmpty(String value) {
    isTrue(StringUtils.isNotEmpty(value));
  }
}
